Scroll to navigation

OCAMLBUILD(1) General Commands Manual OCAMLBUILD(1)

NAME

ocamlbuild - The Objective Caml project compilation tool

SYNOPSIS

ocamlbuild [ -Is  dir1,... ] [ -libs lib1,... ] [ -lflags flag1,... ] [ -pp flags ] [ -tags tag1,... ] [ -j  parallel-jobs ] target.native [ -- arg1 arg2 ... ]

(same options)

DESCRIPTION

ocamlbuild(1) orchestrates the compilation process of your OCaml project. It is similar in function to make(1) except that it is tailor-made to automatically compile most OCaml projects with very little user input.

ocamlbuild should be invoked in the root of a clean project tree (e.g., with no leftover compilation files). Given one or more targets to compile, it scans the required subdirectories to gather information about the various files present, running tools such as ocamldep(1) to extract dependency information, and gathering optional files that fine-tune its behaviour. Target names are very significant.

TARGET NAMES

ocamlbuild uses a set of target naming conventions to select the kind of objects to produce. Target names are of the form base.extension where base is usually the name of the underlying Ocaml module and extension denotes the kind of object to produce from that file -- a byte code executable, a native executable, documentation... Of course extensions such as .cmo, .cma, .cmi... map to their usual counterparts. Here is a list of the most important ocamlbuild-specific extensions:

.native
Native code executable

.byte
Byte code executable

.inferred.mli
Interface inferred with ocamlc-i

.docdir/index.html
HTML documentation generated with ocamldoc

OPTIONS

The following command-line options are recognized by ocamlbuild(1).

Display the version
Make as quiet as possible
Set the verbose level
Show rules and flags
Set log file
No log file
Remove build directory and other files, then exit
Add to include directories
(same as above, but accepts a comma-separated list)
Directory to ignore
(idem)
Link to this ocaml library
(idem)
Add to ocamlc link flags
(idem)
Add to ocamlc compile flags
(idem)
Add to ocamlyacc flags
(idem)
Add to ocamllex flags
(idem)
Add to ocaml preprocessing flags
(idem)
Add to default tags
(idem)
Don't try to build these modules
Don't make links of produced final targets
Don't skip modules that are requested by ocamldep but cannot be built
Don't apply sanity-check rules
Don't build myocamlbuild.ml
Don't ignore stdlib modules
Just build myocamlbuild.ml
Don't use a native plugin but bytecode
Do not enforce sanity-check rules
Fail if something needs to be rebuilt
Display executed commands the old-fashioned way
Allow N jobs at once (0 for unlimited)
Set build directory
Set the install directory
Display the install directory
Set the OCaml bytecode compiler
Set the OCaml native compiler
Set the OCaml dependency tool
Set the ocamlyacc tool
Set the ocamllex tool
Set the ocamlrun tool
--
Stop argument processing, remaining arguments are given to the user program
Display the list of options
Display the list of options

SEE ALSO

The ocamlbuild manual, ocaml(1), make(1).
The Objective Caml user's manual, chapter Batch compilation .